package com.hifar.test.report.pojo.VO;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hifar.plat.AopOption.Dict;
import com.hifar.plat.AopOption.Excel;
import com.hifar.test.report.pojo.HfEnvReport;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotEmpty;
import java.util.Date;

/**
 * @author zhuWeiWei
 * @description 环境报告列表VO
 * @date 2025/1/10 14:40
 */
@Data
@EqualsAndHashCode
@ApiModel("环境报告列表VO")
public class HfEnvReportVO extends HfEnvReport {

    /**
     * 委托单号
     */
    @ApiModelProperty(value = "委托单号")
    private String entrustCode;

    /**
     * 委托部门
     */
    @Excel(name = "委托部门", sort = 1)
    @ApiModelProperty(value = "委托部门")
    @NotEmpty(message = "委托部门不能为空!")
    private String entrustCust;
    /**
     * 委托人id
     */
    @Excel(name = "委托人id", sort = 1)
    @ApiModelProperty(value = "委托人id")
    @NotEmpty(message = "委托人不能为空!")
    private String entrustUserId;

    /**
     * 委托人姓名
     */
    @Excel(name = "委托人姓名", sort = 1)
    @ApiModelProperty(value = "委托人姓名")
    private String entrustUserName;

    /**
     * 委托人联系方式
     */
    @Excel(name = "委托人联系方式", sort = 1)
    @ApiModelProperty(value = "委托人联系方式")
    private String entrustUserPhone;

    /**
     * 期望完成日期
     */
    @Excel(name = "期望完成日期", sort = 1)
    @ApiModelProperty(value = "期望完成日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date predictFinishTime;


    /**
     * 试验性质编码
     */
    @Excel(name = "试验性质编码", sort = 1)
    @ApiModelProperty(value = "试验性质编码")
    @Dict(dictCode = "hf_env_test_property")
    @NotEmpty(message = "试验性质编码不能为空!")
    private String testPropertyCode;

    /**
     * 是否盖CNAS章
     */
    @Excel(name = "是否盖CNAS章", sort = 1)
    @ApiModelProperty(value = "是否盖CNAS章")
    private String izCnas;


    @Excel(name = "课题名称", sort = 6)
    @ApiModelProperty(value = "课题名称")
    private String subjectName;

    @Excel(name = "课题编号", sort = 7)
    @ApiModelProperty(value = "课题编号")
    private String subjectNo;

    /**
     * 是否出具检测报告
     */
    @Excel(name = "是否出具检测报告", sort = 1)
    @ApiModelProperty(value = "是否出具检测报告")
    private String izIssueReport;
}
